#1457B It does not have (purely) coclosed G2-structure. Third obstruction. Proposition 5.6

# w_l = {x1*x3*x4*x5*x6, x2*x3*x4*x5*x6}
# W = <x1*x2>*3-forms 

# Step 1. beta*beta.differential() in W, beta 2-form

A.<x1,x2,x3,x4,x5,x6,x7,a,b,c,d,e,f,g,h,i,j,k,l,m,n,o> = GradedCommutativeAlgebra(QQ,degrees=(1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2))
M=A.cdg_algebra({x3: x1*x2, x4: x1*x3, x7:x1*x4+x2*x3+x5*x6})
M.inject_variables()
(a*x1*x2+b*x1*x3+c*x1*x4+d*x1*x5+e*x1*x6+f*x2*x3+g*x2*x4+h*x2*x5+i*x2*x6+j*x3*x4+k*x3*x5+l*x3*x6+m*x4*x5+n*x4*x6+o*x5*x6)*(a*x1*x2+b*x1*x3+c*x1*x4+d*x1*x5+e*x1*x6+f*x2*x3+g*x2*x4+h*x2*x5+i*x2*x6+j*x3*x4+k*x3*x5+l*x3*x6+m*x4*x5+n*x4*x6+o*x5*x6).differential()

Defining x1, x2, x3, x4, x5, x6, x7, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o
x1*x2*x3*x5*x6*i*m + x1*x2*x4*x5*x6*l*m - x1*x2*x3*x5*x6*h*n - x1*x2*x4*x5*x6*k*n + x1*x2*x3*x5*x6*g*o + x1*x2*x4*x5*x6*j*o

# Step 2. Compute tau, closed 3-form

A.<x1,x2,x3,x4,x5,x6> = GradedCommutativeAlgebra(QQ)
M=A.cdg_algebra({x3: x1*x2, x4: x1*x3})
M.inject_variables()
M.cohomology(3)

(x1*x2).differential()
(x1*x3).differential()
(x1*x4).differential()
(x1*x5).differential()
(x1*x6).differential()
(x2*x3).differential()
(x2*x4).differential()
(x2*x5).differential()
(x2*x6).differential()
(x3*x4).differential()
(x3*x5).differential()
(x3*x6).differential()
(x4*x5).differential()
(x4*x6).differential()
(x5*x6).differential()


Defining x1, x2, x3, x4, x5, x6
Free module generated by {[x1*x3*x4], [x2*x3*x4], [x2*x3*x5], [x1*x4*x5], [x2*x3*x6], [x1*x4*x6], [x1*x5*x6], [x2*x5*x6]} over Rational Field
0
x1*x2*x3
0
0
x1*x2*x4
x1*x2*x5
x1*x2*x6
x1*x3*x5
x1*x3*x6
0

# M=A.cdg_algebra({x3: x1*x2, x4: x1*x3, x7:x1*x4+x2*x3+x5*x6})
# Hence tau*xi.differential(), i=3,4,5,6, contains x1*x2. It is in W

#Step 3.

A.<x1,x2,x3,x4,x5,x6,x7,a,b,c,d,e,f,g,h,i,j,k,l,m,n> = GradedCommutativeAlgebra(QQ,degrees=(1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2))
M=A.cdg_algebra({x3: x1*x2, x4: x1*x3, x7:x1*x4+x2*x3+x5*x6})
M.inject_variables()
tau=a*x1*x3*x4+b*x2*x3*x4+c*x2*x3*x5+d*x1*x4*x5+e*x2*x3*x6+f*x1*x4*x6+g*x1*x5*x6+h*x2*x5*x6+i*x1*x2*x3+j*x1*x2*x4+k*x1*x2*x5+l*x1*x2*x6+m*x1*x3*x5+n*x1*x3*x6
tau*x7.differential()

Defining x1, x2, x3, x4, x5, x6, x7, a, b, c, d, e, f, g, h, i, j, k, l, m, n
x1*x3*x4*x5*x6*a + x2*x3*x4*x5*x6*b + x1*x2*x3*x4*x5*c + x1*x2*x3*x4*x5*d + x1*x2*x3*x4*x6*e + x1*x2*x3*x4*x6*f + x1*x2*x3*x5*x6*g - x1*x2*x4*x5*x6*h + x1*x2*x3*x5*x6*i + x1*x2*x4*x5*x6*j

# tau*x7.differential() in W forces a=0, b=0

#Step 4. Compute lambda(tau)

D.<e1,e2,e3,e4,e5,e6,f1,f2,f3,f4,f5,f6,g1,g2,g3,g4,g5,g6,h1,h2,h3,h4,h5,h6,a,b,c,d,e,f,g,h,i,j,k,l,m,n> = GradedCommutativeAlgebra(QQ,degrees=(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2))
N=D.cdg_algebra({})
N.inject_variables()
taue=c*e2*e3*e5+d*e1*e4*e5+e*e2*e3*e6+f*e1*e4*e6+g*e1*e5*e6+h*e2*e5*e6+i*e1*e2*e3+j*e1*e2*e4+k*e1*e2*e5+l*e1*e2*e6+m*e1*e3*e5+n*e1*e3*e6
tauf=c*f2*f3*f5+d*f1*f4*f5+e*f2*f3*f6+f*f1*f4*f6+g*f1*f5*f6+h*f2*f5*f6+i*f1*f2*f3+j*f1*f2*f4+k*f1*f2*f5+l*f1*f2*f6+m*f1*f3*f5+n*f1*f3*f6
taug=c*g2*g3*g5+d*g1*g4*g5+e*g2*g3*g6+f*g1*g4*g6+g*g1*g5*g6+h*g2*g5*g6+i*g1*g2*g3+j*g1*g2*g4+k*g1*g2*g5+l*g1*g2*g6+m*g1*g3*g5+n*g1*g3*g6
tauh=c*h2*h3*h5+d*h1*h4*h5+e*h2*h3*h6+f*h1*h4*h6+g*h1*h5*h6+h*h2*h5*h6+i*h1*h2*h3+j*h1*h2*h4+k*h1*h2*h5+l*h1*h2*h6+m*h1*h3*h5+n*h1*h3*h6
Cgfe=g1*f2*f3*e4*e5*e6+g1*f2*e3*f4*e5*e6+g1*f2*e3*e4*f5*e6+g1*f2*e3*e4*e5*f6+g1*e2*f3*f4*e5*e6+g1*e2*f3*e4*f5*e6+g1*e2*f3*e4*e5*f6+g1*e2*e3*f4*f5*e6+g1*e2*e3*f4*e5*f6+g1*e2*e3*e4*f5*f6+f1*g2*f3*e4*e5*e6+f1*g2*e3*f4*e5*e6+f1*g2*e3*e4*f5*e6+f1*g2*e3*e4*e5*f6+e1*g2*f3*f4*e5*e6+e1*g2*f3*e4*f5*e6+e1*g2*f3*e4*e5*f6+e1*g2*e3*f4*f5*e6+e1*g2*e3*f4*e5*f6+e1*g2*e3*e4*f5*f6+f1*f2*g3*e4*e5*e6+f1*e2*g3*f4*e5*e6+f1*e2*g3*e4*f5*e6+f1*e2*g3*e4*e5*f6+e1*f2*g3*f4*e5*e6+e1*f2*g3*e4*f5*e6+e1*f2*g3*e4*e5*f6+e1*e2*g3*f4*f5*e6+e1*e2*g3*f4*e5*f6+e1*e2*g3*e4*f5*f6+f1*f2*e3*g4*e5*e6+f1*e2*f3*g4*e5*e6+f1*e2*e3*g4*f5*e6+f1*e2*e3*g4*e5*f6+e1*f2*f3*g4*e5*e6+e1*f2*e3*g4*f5*e6+e1*f2*e3*g4*e5*f6+e1*e2*f3*g4*f5*e6+e1*e2*f3*g4*e5*f6+e1*e2*e3*g4*f5*f6+f1*f2*e3*e4*g5*e6+f1*e2*f3*e4*g5*e6+f1*e2*e3*f4*g5*e6+f1*e2*e3*e4*g5*f6+e1*f2*f3*e4*g5*e6+e1*f2*e3*f4*g5*e6+e1*f2*e3*e4*g5*f6+e1*e2*f3*f4*g5*e6+e1*e2*f3*e4*g5*f6+e1*e2*e3*f4*g5*f6+f1*f2*e3*e4*e5*g6+f1*e2*f3*e4*e5*g6+f1*e2*e3*f4*e5*g6+f1*e2*e3*e4*f5*g6+e1*f2*f3*e4*e5*g6+e1*f2*e3*f4*e5*g6+e1*f2*e3*e4*f5*g6+e1*e2*f3*f4*e5*g6+e1*e2*f3*e4*f5*g6+e1*e2*e3*f4*f5*g6
Cfgh=f1*g2*g3*h4*h5*h6+f1*g2*h3*g4*h5*h6+f1*g2*h3*h4*g5*h6+f1*g2*h3*h4*h5*g6+f1*h2*g3*g4*h5*h6+f1*h2*g3*h4*g5*h6+f1*h2*g3*h4*h5*g6+f1*h2*h3*g4*g5*h6+f1*h2*h3*g4*h5*g6+f1*h2*h3*h4*g5*g6+g1*f2*g3*h4*h5*h6+g1*f2*h3*g4*h5*h6+g1*f2*h3*h4*g5*h6+g1*f2*h3*h4*h5*g6+h1*f2*g3*g4*h5*h6+h1*f2*g3*h4*g5*h6+h1*f2*g3*h4*h5*g6+h1*f2*h3*g4*g5*h6+h1*f2*h3*g4*h5*g6+h1*f2*h3*h4*g5*g6+g1*g2*f3*h4*h5*h6+g1*h2*f3*g4*h5*h6+g1*h2*f3*h4*g5*h6+g1*h2*f3*h4*h5*g6+h1*g2*f3*g4*h5*h6+h1*g2*f3*h4*g5*h6+h1*g2*f3*h4*h5*g6+h1*h2*f3*g4*g5*h6+h1*h2*f3*g4*h5*g6+h1*h2*f3*h4*g5*g6+g1*g2*h3*f4*h5*h6+g1*h2*g3*f4*h5*h6+g1*h2*h3*f4*g5*h6+g1*h2*h3*f4*h5*g6+h1*g2*g3*f4*h5*h6+h1*g2*h3*f4*g5*h6+h1*g2*h3*f4*h5*g6+h1*h2*g3*f4*g5*h6+h1*h2*g3*f4*h5*g6+h1*h2*h3*f4*g5*g6+g1*g2*h3*h4*f5*h6+g1*h2*g3*h4*f5*h6+g1*h2*h3*g4*f5*h6+g1*h2*h3*h4*f5*g6+h1*g2*g3*h4*f5*h6+h1*g2*h3*g4*f5*h6+h1*g2*h3*h4*f5*g6+h1*h2*g3*g4*f5*h6+h1*h2*g3*h4*f5*g6+h1*h2*h3*g4*f5*g6+g1*g2*h3*h4*h5*f6+g1*h2*g3*h4*h5*f6+g1*h2*h3*g4*h5*f6+g1*h2*h3*h4*g5*f6+h1*g2*g3*h4*h5*f6+h1*g2*h3*g4*h5*f6+h1*g2*h3*h4*g5*f6+h1*h2*g3*g4*h5*f6+h1*h2*g3*h4*g5*f6+h1*h2*h3*g4*g5*f6
(-1/6)*taue*Cgfe*tauf*tauh*Cfgh*taug

Defining e1, e2, e3, e4, e5, e6, f1, f2, f3, f4, f5, f6, g1, g2, g3, g4, g5, g6, h1, h2, h3, h4, h5, h6, a, b, c, d, e, f, g, h, i, j, k, l, m, n
e1*e2*e3*e4*e5*e6*f1*f2*f3*f4*f5*f6*g1*g2*g3*g4*g5*g6*h1*h2*h3*h4*h5*h6*d^2*e^2 - 2*e1*e2*e3*e4*e5*e6*f1*f2*f3*f4*f5*f6*g1*g2*g3*g4*g5*g6*h1*h2*h3*h4*h5*h6*c*d*e*f + e1*e2*e3*e4*e5*e6*f1*f2*f3*f4*f5*f6*g1*g2*g3*g4*g5*g6*h1*h2*h3*h4*h5*h6*c^2*f^2

# (-c*f+d*e)^2 \geq 0

